package com.learn.my.flutter;

/**
 * 当线程获取RealData的时候，程序会被阻塞，等RealData被注入才能使用getReal方法
 */
public class FuttureData extends Data {

    //读取结果
    public boolean FLAG=false;

    private RealData readData;
    /**
     * 读取data数据
     */
    public synchronized    void setReadData(RealData readData){
        //如果已经获取到结果，直接返回
        if(FLAG){
            return;
        }
        // 如果flag为flase ，没有获取到数据，传递readData对象
        this.readData=readData;
        FLAG=true;
        notify();
    }

    @Override
    public synchronized String getRequest() {
        while (!FLAG){
            try {
                wait();
            }catch (Exception e){

            }
        }
        return readData.getRequest();
    }
}
